# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html

import scrapy

from scrapy.loader import ItemLoader
from scrapy.loader.processors import TakeFirst, MapCompose
# 去除html标签的
from w3lib.html import remove_tags


# 定义一个默认输出的
class ArticalItemLoader(ItemLoader):
    # 实现之前的extract_first()方法
    # 这里只是重载这个属性，设置为只选取第一个值
    default_output_processor = TakeFirst()


# 以下将之前的各种清洗语句整合到函数中
def add_title_jobbole(value):
    return value + "---jobbole"


# 处理时间的
def formate_date(value):
    if value.strip().replace('·', '').strip():
        return value.strip().replace('·', '').strip()


# 定义去除空格
def str_strip(str):
    return str.strip().replace('\n', '').replace('\t', '').replace('\r', '').replace(' ', '')


# 定义一个item的
class JobboleArticalItem(scrapy.Item):
    title = scrapy.Field(
        input_processor=MapCompose(add_title_jobbole)
    )
    time = scrapy.Field(
        input_processor=MapCompose(formate_date)
    )
    content = scrapy.Field(
        input_processor=MapCompose(remove_tags, str_strip)
    )
